#  This file is automatically generated; please don't muck it up!

#--begin constants--

ENDMARKER = 0
NAME = 1
NUMBER = 2
STRING = 3
NEWLINE = 4
INDENT = 5
DEDENT = 6
LPAR = 7
RPAR = 8
LSQB = 9
RSQB = 10
COLON = 11
COMMA = 12
SEMI = 13
PLUS = 14
MINUS = 15
STAR = 16
SLASH = 17
VBAR = 18
AMPER = 19
LESS = 20
GREATER = 21
EQUAL = 22
DOT = 23
PERCENT = 24
BACKQUOTE = 25
LBRACE = 26
RBRACE = 27
EQEQUAL = 28
NOTEQUAL = 29
LESSEQUAL = 30
GREATEREQUAL = 31
TILDE = 32
CIRCUMFLEX = 33
LEFTSHIFT = 34
RIGHTSHIFT = 35
DOUBLESTAR = 36
PLUSEQUAL = 37
MINEQUAL = 38
STAREQUAL = 39
SLASHEQUAL = 40
PERCENTEQUAL = 41
AMPEREQUAL = 42
VBAREQUAL = 43
CIRCUMFLEXEQUAL = 44
LEFTSHIFTEQUAL = 45
RIGHTSHIFTEQUAL = 46
DOUBLESTAREQUAL = 47
DOUBLESLASH = 48
DOUBLESLASHEQUAL = 49
AT = 50
OP = 51
ERRORTOKEN = 52
COMMENT = 53
NL = 54
N_TOKENS = 55
token_input = 56
unit = 57
char_start = 58
dot_start = 59
LINECONT = 60
LINE_COMMENT = 61
WHITE = 62
INTRON = 63
Longnumber = 64
Intnumber = 65
Hexnumber = 66
Octnumber = 67
Decnumber = 68
Imagnumber = 69
Floatnumber = 70
Pointfloat = 71
Expfloat = 72
Exponent = 73
STR_PREFIX = 74
Single = 75
_value = 75
Double = 76
Single3 = 77
Double3 = 78
Number = 79
OPERATOR = 80
RIGHT = 81
LEFT = 82
SPECIAL = 83
LEFT_DEF = 84
RIGHT_DEF = 85
SPECIAL_DEF = 86
OPERATOR_DEF = 87

#--end constants--

tok_name = sym_name = {}
for _name, _value in globals().items():
    if type(_value) is type(0):
        sym_name[_value] = _name


token_map = {'!=': 29,
 '""""""(ANY|""|""ANY*"")*""""""': 77,
 '"""(ANY|"|"ANY*")*"""': 78,
 '""(A_BACKSLASHANY|ANY)*""': 75,
 '"(A_BACKSLASHANY|ANY)*"': 76,
 '#': 61,
 '%': 24,
 '%=': 41,
 '&': 19,
 '&=': 42,
 '(': 7,
 '(0(x|X)A_HEX_DIGIT+|0A_OCT_DIGIT*|A_NON_NULL_DIGITA_DIGIT*)[l|L|Exponent[j|J]|j|J]|(A_DIGIT+.A_DIGIT*[Exponent])[j|J]': 79,
 '(Intnumber|Floatnumber)(j|J)': 69,
 '(PLUS|MINUS|STAR|SLASH|VBAR|AMPER|LESS|GREATER|EQUAL|PERCENT|EQEQUAL|NOTEQUAL|LESSEQUAL|GREATEREQUAL|TILDE|CIRCUMFLEX|LEFTSHIFT|RIGHTSHIFT|DOUBLESTAR|PLUSEQUAL|MINEQUAL|STAREQUAL|SLASHEQUAL|PERCENTEQUAL|AMPEREQUAL|VBAREQUAL|CIRCUMFLEXEQUAL|LEFTSHIFTEQUAL|RIGHTSHIFTEQUAL|DOUBLESTAREQUAL|DOUBLESLASH|DOUBLESLASHEQUAL)': 87,
 '(e|E)[-|+]A_DIGIT+': 73,
 ')': 8,
 '*': 16,
 '**': 36,
 '**=': 47,
 '*=': 39,
 '+': 14,
 '+=': 37,
 ',': 12,
 '-': 15,
 '-=': 38,
 '.': 23,
 '.|.A_DIGIT+[Exponent][j|J]': 59,
 '/': 17,
 '//': 48,
 '//=': 49,
 '/=': 40,
 '0(x|X)A_HEX_DIGIT+': 66,
 '0A_OCT_DIGIT+': 67,
 '0|(A_NON_NULL_DIGITA_DIGIT*)': 68,
 ':': 11,
 ';': 13,
 '<': 20,
 '<<': 34,
 '<<=': 45,
 '<=': 30,
 '=': 22,
 '==': 28,
 '>': 21,
 '>=': 31,
 '>>': 35,
 '>>=': 46,
 '@': 50,
 'A_BACKSLASHA_WHITE*[A_LINE_END|COMMENT]': 60,
 'A_CHAR(A_CHAR|A_DIGIT)*': 1,
 'A_DIGIT+.A_DIGIT*[Exponent]|.A_DIGIT+[Exponent]': 71,
 'A_WHITE+': 62,
 'COMMA|SEMI|BACKQUOTE|AT': 86,
 'COMMENT|(WHITE[COMMENT])+|LINECONT': 63,
 'Hexnumber|Octnumber|Decnumber': 65,
 'Intnumber(l|L)': 64,
 'IntnumberExponent': 72,
 'LEFT_DEF': 82,
 'LINE_COMMENTANY*A_LINE_END+': 53,
 'LPAR|LSQB|LBRACE': 84,
 'Number': 2,
 'OPERATOR_DEF': 80,
 'Pointfloat|Expfloat': 70,
 'RIGHT_DEF': 81,
 'RPAR|RSQB|RBRACE': 85,
 'SPECIAL_DEF': 83,
 'STRING|NAME': 58,
 'T_DEDENT': 6,
 'T_ENDMARKER': 0,
 'T_ERRORTOKEN': 52,
 'T_INDENT': 5,
 'T_NEWLINE': 4,
 'T_NT': 54,
 'T_N_TOKENS': 55,
 'T_OP': 51,
 '[': 9,
 '[STR_PREFIX](Single|Double|Single3|Double3)': 3,
 ']': 10,
 '^': 33,
 '^=': 44,
 '`': 25,
 'char_start|dot_start|NEWLINE|NUMBER|LEFT|RIGHT|SPECIAL|OPERATOR|COLON|INTRON': 57,
 'u[r|R]|U[r|R]|r|R': 74,
 'unit*ENDMARKER': 56,
 '{': 26,
 '|': 18,
 '|=': 43,
 '}': 27,
 '~': 32}

